//------------------------------------------------------------------------
// <copyright file="MainForm.cs" company="DevDir">
//   Copyleft (c) DevDir. No rights reserved.
// </copyright>
// <author>Nikita Sharov</author>
//------------------------------------------------------------------------

namespace DevDir.Mp3.Equilibrist.Forms
{
  using System;
  using System.Collections.Generic;
  using System.Threading;
  using System.Windows.Forms;

  /// <summary>
  /// Main view of the application.
  /// </summary>
  public partial class MainForm : BaseForm
  {
    private List<ToolStripMenuItem> menuItems = 
      new List<ToolStripMenuItem>();
    
    /// <summary>
    /// Initializes a new instance of the <b>MainForm</b> class.
    /// </summary>
    public MainForm()
    {
      InitializeComponent();

      menuItems.Add(this.mnuFileExit);
      menuItems.Add(this.mnuViewExplorer);
      menuItems.Add(this.mnuViewTagger);
      menuItems.Add(this.mnuViewLookup);
      menuItems.Add(this.mnuToolsOptions);
      menuItems.Add(this.mnuHelpAbout);
    }

    private void Test()
    {      
      throw new Exception("test");
    }

    /// <summary>
    /// Gets all relevant menu items.
    /// </summary>
    public List<ToolStripMenuItem> MenuItems
    {
      get { return this.menuItems; }
    }

    /// <summary>
    /// Gets the main tool bar.
    /// </summary>
    public ToolStrip ToolStrip
    {
      get { return this.toolStrip; }
    }

    public ToolStripButton TaggerButton
    {
      get { return this.taggerButton; }
    }

    public ToolStripButton LookupButton
    {
      get { return this.lookupButton; }
    }

    /// <summary>
    /// Gets the explorer tree view.
    /// </summary>
    public TreeView TreeView
    {
      get { return this.treeView; }
    }

    /// <summary>
    /// Gets the global status strip.
    /// </summary>
    public StatusStrip StatusStrip
    {
      get { return this.statusStrip; }
    }

    /// <summary>
    /// Gets the panel for custom controls.
    /// </summary>
    public Panel Panel
    {
      get { return this.splitContainer.Panel2; }
    }
  }
}